package dados;

import java.util.Calendar;
import java.util.List;

import javax.persistence.TypedQuery;

import basicas.Contrato;
import basicas.FormaPagamento;
import basicas.Pagamento;
import dados.geral.DAOGenerico;
import dados.interfaces.IPagamentoDAO;

public class PagamentoDAO extends DAOGenerico<Pagamento> implements IPagamentoDAO {

	@Override
	public List<Pagamento> consultarPorData(Calendar dataPagamento) {
		TypedQuery<Pagamento> query = entityManager.createQuery("from Pagamento p where p.dataPagamento = :dataPagamento", Pagamento.class);
		query.setParameter("dataPagamento", dataPagamento);
		return query.getResultList();
	}

	@Override
	public List<Pagamento> consultarPorFormaPagamento(FormaPagamento formaPagamento) {
		TypedQuery<Pagamento> query = entityManager.createQuery("from Pagamento p where p.formaPagamento = :formaPagamento", Pagamento.class);
		query.setParameter("formaPagamento", formaPagamento);
		return query.getResultList();
	}

	@Override
	public List<Pagamento> consultarPorContrato(Contrato contrato) {
		TypedQuery<Pagamento> query = entityManager.createQuery("from Pagamento p where p.contrato = :contrato", Pagamento.class);
		query.setParameter("contrato", contrato);
		return query.getResultList();

	}

}
